<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // Generator函数  ES6提供的一种异步编程解决方案，语法与传统函数完全不同

    // 形式上，Generator 函数是一个普通函数，与普通函数相比：
        // 1.function关键字与函数名之间有一个星号*
        // 2.函数体内部使用yield表达式，定义不同的内部状态，相当于一个小型return(可以继续向后执行)

    // 普通函数
        function fn() {
            return 10;
        }

    // Generator函数 
        function * fn1() {
            yield 1;
            yield 2;
            yield 3;
            yield 4;
            return 10;
        }
        var obj = fn1();
        console.log(obj);   // 生成一个遍历器对象
        console.log(obj.next());    // {value: 1, done: false} value 表示值，done表示是否完成，当return 时done会变成true

       for(var val of obj) {
           console.log(val);
       }
</script> 
</html>